/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.fl.service;

import java.util.List;

import com.jeesite.modules.fl.dao.ContentHistoryDao;
import com.jeesite.modules.fl.entity.ContentHistory;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.utils.UserUtils;
import org.hibernate.validator.internal.util.StringHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.jeesite.common.entity.Page;
import com.jeesite.common.service.CrudService;
import com.jeesite.modules.fl.entity.Content;
import com.jeesite.modules.fl.dao.ContentDao;
import com.jeesite.modules.file.utils.FileUploadUtils;

/**
 * 内容管理Service
 * @author anthony
 * @version 2019-01-07
 */
@Service
@Transactional(readOnly=true)
public class ContentService extends CrudService<ContentDao, Content> {
    @Autowired
	public ContentHistoryDao contentHistoryDao;
	/**
	 * 获取单条数据
	 * @param content
	 * @return
	 */
	@Override
	public Content get(Content content) {
		return super.get(content);
	}
	
	/**
	 * 查询分页数据
	 * @param page 分页对象
	 * @param content
	 * @return
	 */
	@Override
	public Page<Content> findPage(Page<Content> page, Content content) {
		return super.findPage(page, content);
	}
	
	/**
	 * 保存数据（插入或更新）
	 * @param content
	 */
	@Override
	@Transactional(readOnly=false)
	public void save(Content content) {
		//新创建的设置状态为停用
		if (content.getIsNewRecord()){
			content.setStatus(Content.STATUS_DISABLE);
		}
		super.save(content);
		// 保存上传图片
		FileUploadUtils.saveFileUpload(content.getId(), "content_image");
		// 保存上传附件
		FileUploadUtils.saveFileUpload(content.getId(), "content_file");
	}
	
	/**
	 * 更新状态
	 * @param content
	 */
	@Override
	@Transactional(readOnly=false)
	public void updateStatus(Content content) {
		super.updateStatus(content);
	}
	
	/**
	 * 删除数据
	 * @param content
	 */
	@Override
	@Transactional(readOnly=false)
	public void delete(Content content) {
		super.delete(content);
	}

    /**
     * 得到没有查看的企业活动数量
     * @return
     */
    public int getNotViewType3Count(String lang){
		Content content = new Content();
		content.setLang(lang);
		content.setCurrentUser(UserUtils.getUser());
	    return dao.getNotViewType3Count(content);
    }

    /**
     * 保存查看结果并返回Content
     * @param id
     * @return
     */
    @Transactional(readOnly=false)
    public Content appView(String id){
        ContentHistory history = new ContentHistory();
        if(!StringHelper.isNullOrEmptyString(UserUtils.getUser().getUserCode())) {
			history.setContentId(id);
			history.setViewer(UserUtils.getUser().getUserCode());
			history.preInsert();
			contentHistoryDao.insert(history);
		}
        Content content =  get(id);
		content.setCreateByName(UserUtils.get(content.getCreateBy()).getUserName());
		return content;
    }
}